package com.tao.YanMoDesignPattern.composite.pattern;

/**
 * @Author Mi_Tao
 * @Date 2023/8/27
 * @Description
 * @Version 1.0
 **/
public abstract class Component {

    // 子组件对象可能有的功能方法
    public abstract void someOperation();

    // 向组合对象中加入组件对象
    public void addChild(Component c){
        // 缺省实现，抛出例外，因为叶子对象没有此操作
        throw new UnsupportedOperationException("该对象不支持此操作");
    }

    // 从组合中移除某个组件对象
    public void removeChild(Component c){
        // 缺省实现
        throw new UnsupportedOperationException("该对象不支持此操作");
    }

    public Component getChildren(int index){
        // 缺省
        throw new UnsupportedOperationException("该对象不支持此操作");
    }
}
